Neste artigo abordarei o uso básico dos wildcards (coringas), que combinados com os comandos de terminal podem fazer mágica. Seu domínio é essencial para todo bom administrador de sistemas Linux.
Os wildcards, chamados de coringas ou meta-caracteres, nos auxiliaram em diversas tarefas, então vamos conhecê-los.
Interrogação (?)
Este wildcard tem a finalidade de substituir um ou mais caracteres, porém os mesmos devem existir, senão a busca retornará um valor nulo. Vamos a um exemplo para melhor entendimento.
O exemplo que melhor se encaixa é, eu estou lá em /etc e quero saber os runlevels de meu sistema, simplesmente venho e digito:
# ls -d /etc/rc?.d
Outro exemplo, se eu quisesse listar tudo começado com rc e que tivesse mais três caracteres depois:
# ls -d /etc/rc???
Em minha opinião este é o wildcard menos utilizado, porém se bem implementado em uma busca tem suas vantagens.
Asterisco (*)
Este sim você usa em seu dia-a-dia e às vezes nem se dá conta, sem dúvidas o mais utilizado. O asterisco (*) substitui qualquer quantidade de caracteres e pode ser colocado no começo de uma busca, no meio ou no fim, ou ainda podemos deixar em evidencia apenas a extensão de um arquivo e poder listar tudo que tiver esta extensão em seu nome.
Vamos a um exemplo:
# ls /etc/*.conf
Ou mesmo:
# ls -d /etc/d*.conf
Colchetes []
Este também é muito interessante, ele nos permite adicionar condições especiais para a saída da busca, algo como qualquer texto que termine com um número de 1 a 9 ou todos os diretórios iniciados com letra maiúscula ou minúscula.
Porém no uso do colchetes, tem que haver uma lógica. Vamos a um exemplo.
Quero listar todos os arquivos iniciados de a até c no diretório /etc:
# ls /etc/[a-c]*
Porém não serão listados arquivos que iniciam com letra maiúscula, se eu quisesse listar as maiúsculas ficaria da seguinte maneira:
# ls /etc/[a-cA-C]*
E se eu quisesse listar todos os arquivos exceto os iniciados por vogais, ficaria assim:
# ls /etc/[^AEIOU]*
Estes são exemplos não convencionais, vocês entenderão bem daqui a pouco quando passarmos para a prática.
Fique atento a um coisa, veja que cada colchete substitui apenas um caractere.
Chaves {}
Este wildcard nos permite especificar uma combinação de caracteres, números ou trechos para serem combinados com o que estiver fora dele, assim fica meio confuso né, mas vamos a um exemplo que rapidamente vocês entenderam.
Digamos que eu esteja no diretório corrente e queira listar todos arquivos que iniciem com a palavra text:
# ls -la . {text}*
O que mais chama a atenção neste wildcard é que o mesmo pode ser combinado com comandos de criação de arquivos e diretório, o que não podemos fazer usando o wildcard [], isso facilita e muito quando se tem um padrão no nome do arquivo e só mude algum caractere, muito bom para ministrar aulas ou dar de exemplos em artigos. :)
Veja: eu quero criar dez arquivos iniciados com o nome aula. Vejo e emito o seguinte comando:
# touch aula{1,2,3,4,5,6,7,8,9,10}
Interessante né, agora que já entenderam o que cada wildcard faz, que tal aprofundar-se um pouco mais?
[8] Comentário enviado por Teixeira em 30/01/2009 - 22:58h
Grande Maran!
Os wildcards ja eram muito importantes nos tempos do DOS,
e nao perderam nada dese aimportancia ate hoje.
Voce abordou com muita felicidade o assunto.
Acho que ficou bem pratico e compreensivel,
pois eeees materia em manuais por ai sempre foi de uma chatice tremenda, que voce conseguiu evitar.
Ficou bem leve.
Parabens!
[9] Comentário enviado por Teixeira em 30/01/2009 - 22:59h
Grande Maran!
Os wildcards ja eram muito importantes nos tempos do DOS,
e nao perderam nada dessa importancia ate hoje.
Voce abordou com muita felicidade o assunto.
Acho que ficou bem pratico e compreensivel,
pois eeees materia em manuais por ai sempre foi de uma chatice tremenda, que voce conseguiu evitar.
Ficou bem leve.
Parabens!
[10] Comentário enviado por Teixeira em 30/01/2009 - 23:01h
Grande Maran!
Os wildcards ja eram muito importantes nos tempos do DOS,
e nao perderam nada dessa importancia ate hoje.
Voce abordou com muita felicidade o assunto.
Acho que ficou bem pratico e compreensivel,
pois essa materia em manuais por ai sempre foi de uma chatice tremenda, que voce conseguiu evitar.
Ficou bem leve.
Parabens!